package com.allcode.ad2;

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.widget.LinearLayout;
import cn.waps.AdView;
import cn.waps.AppConnect;
import cn.waps.MiniAdView;
import cn.waps.UpdatePointsNotifier;

/**
 * Qiujp 2013-3-17 下午8:45:47
 * @Package com.allcode.gba.ad_3
 * @功能：
 */
public class WPu {
	Context c = null;
	UpdatePointsNotifier updatePointsNotifier = null;
	String wang_pu_id = "09f277ca386ee99cb4c910e09f562112";
	public int expenseIntegral = 50;//设置消耗积分
	public int integral=0;//用户当前的积分
	public WPu(Context c, UpdatePointsNotifier updatePointsNotifier){
		this.c = c;
		this.updatePointsNotifier = updatePointsNotifier;
		//方式①：通过AndroidManifest文件读取WAPS_ID和WAPS_PID 
//		AppConnect.getInstance(c);	//必须确保AndroidManifest文件内配置了WAPS_ID 
		// 初始化统计器，并通过代码设置WAPS_ID, WAPS_PID
		AppConnect.getInstance(wang_pu_id, "WAPS", c);
		// 使用自定义的OffersWebView
		AppConnect.getInstance(c).setAdViewClassName("com.allcode.ad2.MyAdView");
		// 禁用错误报告
		AppConnect.getInstance(c).setCrashReport(false);
	}
	
	public void onDestroy() {
		//以下方法将用于释放SDK占用的系统资源
		if (AppConnect.getInstance(c) != null) {
			AppConnect.getInstance(c).finalize();
		}
	}
	
	/**
	* Qiujp 2013-3-17 下午9:08:00
	* @函数名 getIntegral
	* @功能  获取积分
	* @返回类型 void
	*/
	public void getPoints(){
		if (updatePointsNotifier == null) {
			return ;
		}
		AppConnect.getInstance(c).getPoints(updatePointsNotifier);
	}
	
	/**
	* Qiujp 2013-3-17 下午9:07:41
	* @函数名 getGameList
	* @功能  显示游戏列表
	* @返回类型 void
	*/
	public void showGameOffers(){
		AppConnect.getInstance(c).showGameOffers(c);
	}
	
	/**
	* Qiujp 2013-3-17 下午10:52:54
	* @函数名 spendPoints
	* @功能 扣除积分
	* @param deduct void
	* @返回类型 void
	*/
	public void spendPoints(int deduct){
		AppConnect.getInstance(c).spendPoints(deduct, updatePointsNotifier);
	}
	
	/**
	* Qiujp 2013-3-17 下午11:17:12
	* @函数名 awardPoints
	* @功能 增加积分
	* @param amount void
	* @返回类型 void
	*/
	public void awardPoints(int amount){
		AppConnect.getInstance(c).awardPoints(amount, updatePointsNotifier);
	}
	
	/**
	* Qiujp 2013-3-17 下午9:01:51
	* @函数名 addViewAd
	* @功能 加入横幅广告，不加给值null
	* @param headAd 头部横幅
	* @param sternAd 底部横幅
	* @返回类型 void
	*/
	public void addViewAd(LinearLayout headAd, LinearLayout sternAd){
		// 初始化自定义广告数据
		AppConnect.getInstance(c).initAdInfo();
		
		// 初始化插屏广告数据
		AppConnect.getInstance(c).initPopAd(c);
		
		// 带有默认参数值的在线配置，使用此方法，程序第一次启动使用的是"defaultValue"，之后再启动则是使用的服务器端返回的参数值
		String showAd = AppConnect.getInstance(c).getConfig("showAd", "defaultValue");
		
		// 互动广告调用方式
		if (headAd != null) {
			new MiniAdView(c, headAd).DisplayAd(10);// 10秒刷新一次  在头部添加广告
		}
		if (sternAd != null) {
			new AdView(c, sternAd).DisplayAd();
		}
	}
	
	
	/**
	* Qiujp 2013-3-17 下午9:01:20
	* @函数名 isEnoughIntegral
	* @功能 判断是否有足够的积分
	* @param integral
	* @param expenseIntegral 消费积分
	* @param title void
	* @返回类型 void
	*/
	public boolean isEnoughIntegral(int integral, String title){
		if (integral < expenseIntegral) {
			hintDialog(title, true, l);
			return false;
		}
		return true;
	}
	
	public void hintDialog(String msg, boolean isNeutralButton, DialogInterface.OnClickListener l){
		AlertDialog.Builder builder = new AlertDialog.Builder(c);
		builder.setTitle("提示");
		builder.setMessage(msg);
		builder.setPositiveButton("确定", l);
		if (isNeutralButton) {
			builder.setNeutralButton("取消", l);
		}
		builder.create().show();
	}
	
	DialogInterface.OnClickListener l = new DialogInterface.OnClickListener() {
		public void onClick(DialogInterface dialog, int which) {
			if(which == DialogInterface.BUTTON_POSITIVE){
				//显示推荐列表（游戏）
				AppConnect.getInstance(c).showGameOffers(c);
			}
		}
	};
	
	//coo_id解密
	//加密方式是倒数第二位倒退5  如 b 加密后变为 6
	private String coo_id(String id){
		String[] key = new String[]{"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};
		int position = 0;
		String temId = id.substring(id.length()-2,id.length()-1);
		
		for (int i = 0; i < key.length; i++) {
			if (temId.equals(key[i])) {
				position = i;
				break;
			}
		}
		
		position++;
		position = position+5<=16?position+5:position+5-16;
		temId = key[position - 1];
		
		temId = id.substring(0,id.length()-2) + temId + id.substring(id.length()-1,id.length());
		return temId;
	}
}
